package com.czm.art_light.mapper;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.czm.art_light.entity.ArtUserLikes;
import com.czm.art_light.entity.ArtWork;
import com.czm.art_light.param.request.ArtWorkReqDto;
import com.czm.art_light.param.request.PageReqDto;
import com.czm.art_light.param.response.ArtWorkBasicInfoRespDto;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 用户爱好信息  Mapper 接口
 */
@Mapper
public interface ArtUserLikesMapper {
    /**
     * 根据用户ID与艺术画作品ID查询该用户是否喜好该艺术画（默认不喜欢)
     */
    ArtUserLikes getByUserIdAndWorkId(@Param("userId") Integer userId, @Param("workId") Integer workId);

    /**
     * 根据用户ID与艺术画作品ID修改喜好的状态
     * 使用乐观锁 并且修改前要判断和数据库中的不一致，才修改，而且修改的时候也要判断
     */
    void updateLikesByUserIdAndWorkId(@Param("userId") Integer userId, @Param("workId") Integer workId, @Param("isLiked") Integer isLiked, @Param("currentIsLiked") Boolean currentIsLiked);

    /**
     * 新增用户爱好信息
     */
    void insert(ArtUserLikes artUserLikes);

    /**
     * 根据用户Id 进行用户爱好作品分页查找
     */
    List<Integer> listArtWorkIdByUserId(IPage<ArtUserLikes> page, @Param("userId") Integer userId);
}
